﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

namespace Pong
{
    class Pilka
    {
        private int x, y, szerokosc, wysokosc;
        private int xSzybkosc, ySzybkosc;
        private bool kierunek = false;
        private int punkty = 0;

        private Image imgPilka;
        public Rectangle recPilka;

        public Pilka()
        {
            x = 150;
            y = 320;
            szerokosc = 9;
            wysokosc = 9;
            xSzybkosc = 4;
            ySzybkosc = 4;

            imgPilka = Pong.Properties.Resources.pilka;
            recPilka = new Rectangle(x, y, szerokosc, wysokosc);
        }

        public void rysowanePilki(Graphics grp)
        {
            grp.DrawImage(imgPilka, recPilka);
        }

        public void poruszaniePilka()
        {
            recPilka.X += xSzybkosc;
            recPilka.Y += ySzybkosc;

            kolizjaSciana();
        }

        private void kolizjaSciana()
        {
            if (recPilka.X <= 2 || recPilka.X >= 539)
            {
                xSzybkosc *= -1;
            }
            if (recPilka.Y > 488) // gdy wyjdzie za paletke
            {
                punkty--;
                recPilka.X = 150;
                recPilka.Y = 120;
            }
            if (recPilka.Y <= 0)
            {
                punkty++;
                recPilka.X = 150;
                recPilka.Y = 320;
            }
            (Application.OpenForms["Form1"] as Form1).lPunkty.Text = punkty.ToString();
        }

        public void kolizjaPaletka(Rectangle recPaletka)
        {
            (Application.OpenForms["Form1"] as Form1).label1.Text = kierunek.ToString();

            if (recPaletka.IntersectsWith(recPilka))
            {
                if (recPilka.X < 250)
                {
                    for (int i = 0; i < 50; i++)
                    {
                        if (recPaletka.X + i == recPilka.X)
                        {
                            if (kierunek == true)
                            {
                                xSzybkosc *= -1;
                            }
                            kierunek = false;
                            ySzybkosc *= -1;
                        }
                    }
                    for (int i = 50; i < 100; i++)
                    {
                        if (recPaletka.X + i == recPilka.X)
                        {
                            if (kierunek == false)
                            {
                                xSzybkosc *= -1;
                            }
                            kierunek = true;
                            ySzybkosc *= -1;
                        }
                    }
                }
                if (recPilka.X >= 250)
                {
                    for (int i = 0; i < 50; i++)
                    {
                        if (recPaletka.X + i == recPilka.X)
                        {
                            if (kierunek == false)
                            {
                                xSzybkosc *= -1;
                            }
                            kierunek = true;
                            ySzybkosc *= -1;
                        }
                    }
                    for (int i = 50; i < 100; i++)
                    {
                        if (recPaletka.X + i == recPilka.X)
                        {
                            if (kierunek == true)
                            {
                                xSzybkosc *= -1;
                            }
                            kierunek = false;
                            ySzybkosc *= -1;
                        }
                    }
                }
            }
        }
    }
}

